#ifndef PARTICLE_H
#define PARTICLE_H

class Particle
{
    public:
        // real functions
        void update(double timeScale);
        void beAwareOf(double x_, double y_, double charge_, double timeScale);
        
        // functions to deal with variables
        double get_x();
        double get_y();
        double get_vx();
        double get_vy();
        double get_charge();
        bool get_locked();
        
        
        Particle();
        void set_x(double x_);
        void set_y(double y_);
        void set_vx(double vx_);
        void set_vy(double vy_);
        void set_charge(double charge_);
        void set_locked(bool locked_);
        
        Particle * next;
        
    private:
        double x;
        double y;
        double vx; // velocity in the x direction
        double vy; // velocity in the y direction
        double charge;
        double Px; // potential in x
        double Py; // potential in y
        bool locked;
};

#endif
